# GameProperties.gd
extends Node

# 玩家属性
var player = {
	"health": 100,
	"max_health": 100,
	"defense": 1,
	"speed": 100
}
# 武器属性库（存储所有武器模板）
var weapon = {
	"weapon_name" : '默认枪械',
	"bullet_max" : 1000, # 子弹最大数量
	"damage" : 5, # 枪械伤害
	"weapon_rof" : 0.2, #枪械射速
	"bullet_speed": 500, #子弹射速
	"pellet_count" : 6,  # 一次发射的子弹组数
	"total_spread_angle" : PI/6 ,  # 总散射角度范围（180° = π弧度）
	"random_offset" : PI*0.1,  # 随机偏移角度范围（弧度）
	"min_delay" : 0.00,  # 最小发射延迟（秒）
	"max_delay": 0.00,  # 最大发射延迟（秒）
	"chaos_bullet" : 0.1,  #混乱子弹概率
	"parallel_bullets" : 3,  # 每组平行子弹数量
	"parallel_spacing" : 5.0,  # 平行子弹间距(像素)
	"penetrating_bullet": 2, #穿透
	"repulsion_force": 300, #击退力量
	"bullet_range": 100, #弹道范围
	"crit_rate": 0.5, #暴击率
	"critical_damage":2 #暴击伤害加成（1-2）
}



# 当前装备的武器
var current_weapon = null

"""TODO 以后再写
#玩家血量
var current_hp: # 玩家当前血量
	set(_value):
		current_hp = _value
		PlayerManager.on_player_hp_changed.emit(_value,player["max_health"])
		if _value <= 0:
			PlayerManager.on_player_death.emit()
			
			
			"""
	
"""
# 设置当前武器
func equip_weapon(weapon_id):
	if weapons.has(weapon_id):
		current_weapon = weapons[weapon_id]
		return true
	return false
"""
# 获取玩家属性
func get_player_property(property_name):
	return player.get(property_name, null)

# 设置玩家属性
func set_player_property(property_name, value):
	player[property_name] = value
	

# 获取当前武器属性
func get_weapon_property(property_name):
	return weapon.get(property_name, null)
	
	
func set_weapon_property(property_name, value):
	weapon[property_name] = value
	
	
"""
# 获取特定武器模板属性
func get_weapon_template_property(weapon_id, property_name):
	if weapons.has(weapon_id):
		return weapons[weapon_id].get(property_name, null)
	return null
"""
